import axios from "../utils"

/**
 * 请求获取所有 todolist  列表数据
 * @returns  Promise < todolist  列表数据>
 * @author 1208全体成员
 */
export function ReqGetAll(){
    return axios.get("/todolist");
}

/**
 * 新增一个todo
 * @param {} title : string
 * @returns Promise  
 */
export function ReqAddTodo(title){
    return axios.post("/todolist",{
        title,
        done:false
    })
}

/**
 * 删除一个todo
 * @param {*} id:number
 * @returns  Promise
 */
export function ReqDeleteTodo(id){
    return axios.delete(`/todolist/${id}`);
}

/**
 * 
 * @param {*} id :number   todo的id
 * @param {*} done :boolean  完成的状态
 * @returns Promise
 */
export function ReqUpdateTodo(id,done){
    return axios.patch(`/todolist/${id}`,{
        done
    })
}

/**
 * 全选与取消全选
 * @param {*} todolist : 所有列表数据  array
 * @param {*} done :当前的选中的状态  boolean
 * @returns  Promise
 */
export function ReqCheckedAllDone(todolist,done){
     //向后台发送请求，批量更新数据
    let promises = todolist.map(item =>{
        return axios.patch(`/todolist/${item.id}`,{
            done
        });
    })

    return Promise.all(promises);
}


/**
 * 批量删除已完成
 * @param {*} todolist 所有列表数据  array
 * @returns Promise
 */
export function ReqDeleteOkDone(todolist){
     //向后台发送请求
     let promises = todolist.filter(item => item.done).map(item =>{
        return axios.delete(`/todolist/${item.id}`);
    })

    return  Promise.all(promises);
}
